NEWS ARTICLES


    What's News in the PlayBasic world ? - Find out here.




 PlayBasic News (May 2012)

By: Kevin Picone Added: May 14th, 2012

Category: All,News,Video,Beta Testing


    Welcome stranger, miss us ? Yeah we know, we haven't been updating the site a frequently as some of you or I would like, but there's an up side, we're been stuck in the trenches improving PlayBasic just for you ! So it's not all bad. If you want the very latest up to date news/bets, then your best bet would be to join the forums or via facebook. I post pretty frequently on both, so either way you'll be kept in the loop.

     Anyway, so what has been going on ? - Well, there's a way too much for me to cover in every tiny little detail, jump on the forums for that, so I'll just go over the major bullet points. Which basically breaks down into three topics, Most recently focus has been on a new retail update called PlayBasic V1.64N2, prior to that we're been secretly working on a new graphics engine and third generation runtime technology called VM3. The later I can't really talk too much about, but are quietly confident that any successor to PlayBasic will be a major step forward and not small one.



PlayBasic V1.64N2 Work In Progress

     First, lets kick around what you'll find in PlayBasic V1.64N2 update. This upgrade was originally slated to address some small bugs in V1.64N, but has since been expanded to include a number of new compiler and runtime performance improvements. Performance is something we care a lot about, from the compile time speeds, through to execution and command set performances, Every little detail matters. The classic versions of PlayBasic (V1.64 and bellow) run on the hybrid runtime technology. This is the engine that runs your game code, so the faster it is, the better your game performs. Back in the early days of PlayBasic, improving the runtime performance was often fairly trivial. But over time, the vast majority of the fat has been cut off the bones. Making, tweaking it up more and more difficult. To the point where most improvements today come more from changes to the compiler, rather than any micro optimization to the runtime.

     The compiler process in PlayBasic takes the users source code and builds a byte code representation from it. The byte code is like a custom machine language that runs exclusively on the runtime, or virtual machine. Now the thing is, often when the compiler assembles the user code, it can output sequences of instructions that are perhaps more might be needed. To counter this, we added a set of expression optimizers to PlayBasic a number of years ago. Which helps the compiler produce a more stream lined sequence of instructions that represent the same logic. The general rule is, the less instructions or the more work the instruction does, the faster your end program executes.

     So the optimizer gives a good boost for at what it does, but it's limited to operating within certain expressions, but not anymore. My current work revolves around adding a new optimizer mode that caches type accesses throughout user code. Generally when the compiler sees a Typed Array or LIST, it drops the required code to read or write to that data structure. The thing is, when you look through user source codes, such accesses are generally serialized across groups of lines. So what the optimizer does, is it tries to cache accesses of that sequential type data, reducing the work the runtime has to do. Performance wise, we're seeing some staggering results in the brute bench marks, where V.164N2 is anywhere from 25% to 50% faster than V1.64N retail. Which in turn is much quicker than the V1.64L learning edition, I might add.

     What's even more interestingly is that these changes significantly close the gap to some of our so called native machine code BASIC compilers. I would expect those to be at least 10,20,30 or more times faster than our 10 year old virtual machine, but V1.64N2 closes the gap to as little as 5->6 times, PlayBasic can often beat them in certain tests. Which is very encouraging, but I think that just demonstrates how poorly some native BASIC compilers are at generating code. Which makes you wonder.

     You can read all the nitty gritty about this update in the PlayBasic V1.64N2 WIP thread on the forums



PlayBasic FX - VM3 and OpenGL Based graphics Engine

     What's PlayBasicFX ?, well it was designed to be the successor of PlayBasic, you can think of it as PlayBasic V2.00 really. Originally the concept was to built a more modular edition of the PlayBasic language. Allowing the compiler / runtime & command sets to evolve individually. This would allow many things, such as the ability to swap standard command sets could, allowing programmers to the pick what command sets they want to use, or allow 3rd parties to build wrappers for their engines. To date, there's a number prototype editions of the package floating around testing alternative command sets and runtimes. Some are released, some not. The the thing is, since the project was first designed, the computing landscape has changed dramatically. Forcing us to rethink the core priorities for the project.

     When the idea of PB first revolved, gaming and indie game programming were very much Windows based activities. But today, being Windows based is a placing limitation on our fellow game programmers, who might way to build apps for MAC, LINUX or even mobile devices. Now that goal conflicts with the original editions of PBFX which were using Direct3D, making them Windows Only. As such, we've taken the very difficult decision to discontinue the old line of development and build fresh new edition out of it's ashes.

     Which brings us to our third generation runtime technology, creatively called VM3. While the VM3 runtime is designed to be platform independent, it also includes all the best features from our previous generations and more. Giving it some real performance punch, which is pretty necessary given how slow some hand held devices are (budget tablets). Unlike older editions of the runtime, VM3 is stand alone. So there's no attached built in command sets. If we're talking potentially going cross platform, then there's really only one option for our base command sets, and that's to base it on OpenGL. Which is what i've been secretly doing for a while now. Not that it's a well kept secret

     The new graphics core is focusing on 2D first, the current editions are basically image/sprite based, but you can render all the standard PB graphics types such as Lines/Circles/Dots/Boxes etc. One of the older goals was to make FX command sets backward compatible with the classic version of PlayBasic, but this is no longer a core objective. Unfortunately, it's not viable to do that, since OpenGL works very differently, so there will be some command changes. As for exactly what's in it, we're keeping that secret for the time being.

     Anyway, here's a short sneak peek of the perspective bubbles tech demo running on a the new OpenGL based graphics engine. The demo is perspectively projecting the bubble sprites, where each translucent sprite moves towards the camera much like in classic star field effect. The effect isn't that interesting really, it's to give you a quick glimpse at the OpenGL graphics engine is in fact up and running, even if in an completely unoptimized state. In this demo the engine is actually linked to the PlayBasic runtime, creating something of a Frankenstein version really just for testing. The final engine will ship with PBFX





 PlayBasic V1.64M Entering Final Beta Testing

By: Kevin Picone Added: November 25th, 2010

Category: All,Upgrade,Beta Testing

    PlayBasic V1.64M Entering Final Beta Testing

     After six months work, upgrade V1.64M has entered the final stages of development and testing. In fact, the current version (if all goes well) will become the release version. Upgrade V1.64M has a lot of global changes from current V1.64L revision, covering all of the core commands sets, such as Fonts, Maps , Shapes, Sprites, debugger, optimizations and of course bug fixes. Therefore, if you've been living in cave most of the year or just holding off the urge to get involved, now is the time! - It's really important registered users test their programs with the current build, so we work out any final gremlins before release. To do so, head over to the PlayBasic Forums and download the latest beta (38 at the time of writing)

     For those not following the work in progress blog on the forums, the following snippets (from that thread) should help get you up to speed. For more detail (code snippets/ bigger pictures), read the entire thread on the forums.

Work In Progress Gallery



    Visit the PlayBasic V1.64m Work In Progress Gallery for bigger pictures / movies, code examples and of course downloads.





 PlayBasic V1.64k In Final Testing

By: Kevin Picone Added: December 8th, 2009

Category: All,Upgrade,Beta Testing

     We've been working very hard on the next retail upgrade of PlayBasic, which will be V1.64k - This edition focuses upon adding a number of new flexibilities to the core language, ranging from expansions to User Defined Types, Seven new Math operators, Optional Parameters Support in not only built in functions but users defined functions, Dynamic Function Calling (Call a function by name at runtime), Limited Array operators, Dynamic Array Creation (return arrays from functions) as well as Passing/Returning Individual Types from Functions/Psubs. All in All, there's a lot of new toys for you play with !

     Prior to starting work on V1.64K, we'd planned upon including not only a range of new language features, but more expansions to the graphics engine also. However, given the scope of this work. We've decided to split the upgrade into two halves, V1.64k will be the language changes, while V1.64L will be mostly graphical changes. This enables us to ensure the functionality of the product out there in the real world. (You know, running user code ).

     In terms of release dates, my best estimate at this point, is that we'll see a release of PlayBasic V1.64 sometime within the next week.

     Head over to our PlayBasic forums to check the PlayBasic V1.64k Work In Progress thread out, for more nitty gritty!. There's still lots more changes to come !





Viewing Page [2] of [2]



 

 
     
 
       

(c) Copyright 2002 / 2024 Kevin Picone , UnderwareDesign.com  - Privacy Policy   Site: V0.99a [Alpha]